/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package juegocartas.clases;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 *
 * @author JuanFran Jara Bellid
 */
public class GrupoCartas {
    
    public static final String ORO = "ORO";
    public static final String BASTOS = "BASTOS";
    public static final String COPAS = "COPAS";
    public static final String ESPADA = "ESPADA";

    private List<Carta> grupoCartas;

    public GrupoCartas() {
        if (grupoCartas == null) {
            grupoCartas = new ArrayList<Carta>();
        }
        grupoCartas.clear();
    }

    public List<Carta> getGrupoCartas() {
        return grupoCartas;
    }

    public void setGrupoCartas(List<Carta> grupoCartas) {
        this.grupoCartas = grupoCartas;
    }

    public void annadirCarta(Carta carta) {
        grupoCartas.add(carta);
    }

    public void barajar() {
        Collections.shuffle(grupoCartas);
    }

    public Carta cogerCartaSuperior() {
        if (grupoCartas == null) {
            return null;
        }
        Carta carta = grupoCartas.get(0);
        grupoCartas.remove(0);
        return carta;
    }

    public void mostrarCartas() {
        for (Carta carta : grupoCartas) {
            System.out.println(carta.getNumero() + " de " + carta.getPalo());
        }
    }
    
    public static GrupoCartas crearBarajaEspanola() {        
        GrupoCartas grupoCartas = new GrupoCartas();
        Carta unoOro = new Carta(1, ORO);
        Carta dosOro = new Carta(2, ORO);
        Carta tresOro = new Carta(3,ORO);
        Carta cuatroOro = new Carta(4, ORO);
        Carta cincoOro = new Carta(5, ORO);
        Carta seisOro = new Carta(6, ORO);
        Carta sieteOro = new Carta(7, ORO);
        Carta sotaOro = new Carta(10, ORO);
        Carta caballoOro = new Carta(11, ORO);
        Carta reyOro = new Carta(12, ORO);
        grupoCartas.annadirCarta(unoOro);
        grupoCartas.annadirCarta(dosOro);
        grupoCartas.annadirCarta(tresOro);
        grupoCartas.annadirCarta(cuatroOro);
        grupoCartas.annadirCarta(cincoOro);
        grupoCartas.annadirCarta(seisOro);
        grupoCartas.annadirCarta(sieteOro);
        grupoCartas.annadirCarta(sotaOro);
        grupoCartas.annadirCarta(caballoOro);
        grupoCartas.annadirCarta(reyOro);
        Carta unoCopa = new Carta(1, COPAS);
        Carta dosCopa = new Carta(2, COPAS);
        Carta tresCopa = new Carta(3,COPAS);
        Carta cuatroCopa = new Carta(4, COPAS);
        Carta cincoCopa = new Carta(5, COPAS);
        Carta seisCopa = new Carta(6, COPAS);
        Carta sieteCopa = new Carta(7, COPAS);
        Carta sotaCopa = new Carta(10, COPAS);
        Carta caballoCopa = new Carta(11, COPAS);
        Carta reyCopa = new Carta(12, COPAS);
        grupoCartas.annadirCarta(unoCopa);
        grupoCartas.annadirCarta(dosCopa);
        grupoCartas.annadirCarta(tresCopa);
        grupoCartas.annadirCarta(cuatroCopa);
        grupoCartas.annadirCarta(cincoCopa);
        grupoCartas.annadirCarta(seisCopa);
        grupoCartas.annadirCarta(sieteCopa);
        grupoCartas.annadirCarta(sotaCopa);
        grupoCartas.annadirCarta(caballoCopa);
        grupoCartas.annadirCarta(reyCopa);
        Carta unoBastos = new Carta(1, BASTOS);
        Carta dosBastos = new Carta(2, BASTOS);
        Carta tresBastos = new Carta(3,BASTOS);
        Carta cuatroBastos = new Carta(4, BASTOS);
        Carta cincoBastos = new Carta(5, BASTOS);
        Carta seisBastos = new Carta(6, BASTOS);
        Carta sieteBastos = new Carta(7, BASTOS);
        Carta sotaBastos = new Carta(10, BASTOS);
        Carta caballoBastos = new Carta(11, BASTOS);
        Carta reyBastos = new Carta(12, BASTOS);
        grupoCartas.annadirCarta(unoBastos);
        grupoCartas.annadirCarta(dosBastos);
        grupoCartas.annadirCarta(tresBastos);
        grupoCartas.annadirCarta(cuatroBastos);
        grupoCartas.annadirCarta(cincoBastos);
        grupoCartas.annadirCarta(seisBastos);
        grupoCartas.annadirCarta(sieteBastos);
        grupoCartas.annadirCarta(sotaBastos);
        grupoCartas.annadirCarta(caballoBastos);
        grupoCartas.annadirCarta(reyBastos);
        Carta unoEspadas = new Carta(1, ESPADA);
        Carta dosEspadas = new Carta(2, ESPADA);
        Carta tresEspadas = new Carta(3,ESPADA);
        Carta cuatroEspadas = new Carta(4, ESPADA);
        Carta cincoEspadas = new Carta(5, ESPADA);
        Carta seisEspadas = new Carta(6, ESPADA);
        Carta sieteEspadas = new Carta(7, ESPADA);
        Carta sotaEspadas = new Carta(10, ESPADA);
        Carta caballoEspadas = new Carta(11, ESPADA);
        Carta reyEspadas = new Carta(12, ESPADA);
        grupoCartas.annadirCarta(unoEspadas);
        grupoCartas.annadirCarta(dosEspadas);
        grupoCartas.annadirCarta(tresEspadas);
        grupoCartas.annadirCarta(cuatroEspadas);
        grupoCartas.annadirCarta(cincoEspadas);
        grupoCartas.annadirCarta(seisEspadas);
        grupoCartas.annadirCarta(sieteEspadas);
        grupoCartas.annadirCarta(sotaEspadas);
        grupoCartas.annadirCarta(caballoEspadas);
        grupoCartas.annadirCarta(reyEspadas);
        return grupoCartas;
    }
    
}
